home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / tools / ask / ksd / source / ksd.h < prev    next >
Text File  |  1998-09-30  |  6KB  |  168 lines

  1. /* AIGライブラリ KSDサポート関数
  2.     Copyright (C) 1997,98 by AIG-SOFT
  3. */
  4. #ifndef    __AIG_KSD__
  5. #define    __AIG_KSD__    1    /* ヘッダー読み込みシンボル */
  6.  
  7. #ifndef    __CLASS_H
  8. #include <class.h>
  9. #endif
  10.  
  11. /* 定数 */
  12. #define    KSD_SYMBOL    "AIG-KSD"    /* デバイスシンボル */
  13. #define    KSD_ST_SIZE    64    /* IOCTRL INに必要なバッファーサイズ */
  14. #define    KSD_SEP        ('/')    /* IOCTRL INの各データのセパレーター */
  15.  
  16. // 実際にはKSDDevName()を使えば、これらのデバイス名定数を使うことはない
  17. //(通常は使わないように)
  18. #define    KSD_NAME    "@KEY"        /* デバイス名 通常 */
  19. #define    KSD_NAME2    "@KSD"        /* デバイス名 /K時 */
  20.  
  21. // 外部起動プログラムテーブル
  22. struct ksd_ef {
  23.     UBYTE    Scan;        // 起動ScanCode
  24.     UBYTE    Shift;        // 起動Shift状態
  25.     int    (*Exec)();    // 起動プログラム
  26.  struct ksd_ef    *Next;        // 次のテーブルアドレス
  27. };
  28. typedef struct ksd_ef KSD_EF;
  29.  
  30. // APIコマンド
  31. #define    KSD_Clear    'C'    /* キーバッファークリア */
  32. #define    KSD_Active    'A'    /* 活動状態にする */
  33. #define    KSD_BuffActive    'B'    /* 外部プログラム起動無し活動状態にする */
  34. #define    KSD_OnceActive    'O'    /* 一時活動状態にする */
  35. #define    KSD_Pause    'P'    /* 休止状態にする */
  36. #define    KSD_Stop    'S'    /* 完全停止状態にする */
  37. #define    KSD_WFMusi    'E'    /* 書き込みFull時に書き込めない部分は無視する */
  38. #define    KSD_WFFull    'F'    /* 書き込みFull時に古いデータを消して書き込む */
  39. #define    KSD_CLEAR    KSD_Clear
  40. #define    KSD_ACTIVE    KSD_Active
  41. #define    KSD_PAUSE    KSD_Pause
  42. //
  43. #define    KSD_CheckFull    1    /* バッファーフルチェック */
  44. #define    KSD_CheckEmpty    2    /* バッファー空チェック */
  45. #define    KSD_Rcheck    3    /* 先行読みだし */
  46. #define    KSD_Read    4    /* 読みだし */
  47. #define    KSD_Write    5    /* 書き込み */
  48. #define    KSD_ReadMode    6    /* 内部状態読みだし */
  49. #define    KSD_ReadVer    7    /* バージョン読みだし */
  50. #define    KSD_ReadSize    8    /* バッファーサイズ読みだし */
  51. #define    KSD_ReadFree    9    /* バッファーフリーサイズ読みだし */
  52. #define    KSD_LinkEFunc    10    /* 外部起動プログラム登録 */
  53. #define    KSD_UnlinkEFunc    11    /* 外部起動プログラム登録解除 */
  54. #define    KSD_JLock    12    /* 常駐ロック */
  55. #define    KSD_JUnlock    13    /* 常駐アンロック */
  56. #define    KSD_Read1    14    /* 1byte読みだし */
  57. #define    KSD_Write1    15    /* 1byte書き込み */
  58. #define    KSD_B_KEYINP    16    /* B_KEYINP */
  59. #define    KSD_B_KEYSNS    17    /* B_KEYSNS */
  60. #define    KSD_B_SFTSNS    18    /* B_SFTSNS */
  61. #define    KSD_ExecEFunc    19    /* 外部起動プログラム強制起動 */
  62. #define    KSD_DevNameA    20    /* デバイス名取得 (v1.7) */
  63.  
  64. // 状態:コマンド名と同じ(ただし、すべてのコマンドに対応する状態があるわけではない)
  65. #define    KSD_ST_Active        KSD_Active    /* 活動状態 */
  66. #define    KSD_ST_BuffActive    KSD_BuffActive    /* 外部プログラム起動無し活動状態 */
  67. #define    KSD_ST_OnceActive    KSD_OnceActive    /* 一時活動状態 */
  68. #define    KSD_ST_Pause        KSD_Pause    /* 休止状態 */
  69. #define    KSD_ST_Stop        KSD_Stop    /* 完全停止状態 */
  70. #define    KSD_ST_WFMusi        KSD_WFMusi    /* 書き込みFull時に書き込めない部分は無視する */
  71. #define    KSD_ST_WFFull        KSD_WFFull    /* 書き込みFull時に古いデータを消して書き込む */
  72. #define    KSD_ST_ACTIVE        KSD_ST_Active
  73. #define    KSD_ST_PAUSE        KSD_ST_Pause
  74.  
  75. // コマンド名(文字列)for KSDSetStatus() : V1.5から変更になっているので注意!!
  76. #define    KSD_Clear_S        "C"    /* キーバッファークリア */
  77. #define    KSD_Active_S        "A"    /* 活動状態にする */
  78. #define    KSD_BuffActive_S    "B"    /* 外部プログラム起動無し活動状態にする */
  79. #define    KSD_OnceActive_S    "O"    /* 一時活動状態にする */
  80. #define    KSD_Pause_S        "P"    /* 休止状態にする */
  81. #define    KSD_Stop_S        "S"    /* 完全停止状態にする */
  82. #define    KSD_WFMusi_S        "E"    /* 書き込みFull時に書き込めない部分は無視する */
  83. #define    KSD_WFFull_S        "F"    /* 書き込みFull時に古いデータを消して書き込む */
  84. #define    KSD_CLEAR_S    KSD_Clear_S
  85. #define    KSD_ACTIVE_S    KSD_Active_S
  86. #define    KSD_PAUSE_S    KSD_Pause_S
  87.  
  88. /* KSD関数はプロトタイプ宣言のみ用意 */
  89. #ifdef    __cplusplus    /* G++対応 */
  90. extern    "C" {
  91. #endif
  92.     int    KSDCheck(void);
  93.     int    KSDSetStatus(char *);
  94.     int    KSDReadStatus(char *);
  95.     int    KSDSetData(UBYTE *);
  96.     void    KSDDevName(UBYTE *);    // V1.7
  97.     // API関数(V1.5)
  98.     int    KSDSetAPI(void);
  99.     long    KSDCallAPI(UBYTE);
  100.     long    KSDCallAPI1d(UBYTE,long);
  101.     long    KSDCallAPI1a(UBYTE,void *);
  102.     long    KSDCallAPI2(UBYTE,void *,long);
  103.     //
  104.     long    KSDRead(UBYTE *,int );
  105.     long    KSDWrite(UBYTE *,int );
  106.     int    KSDLinkEFunc(KSD_EF *);
  107.     int    KSDUnlinkEFunc(KSD_EF *);
  108.     void    KSDClear(void);
  109.     void    KSDPause(void);
  110.     void    KSDStop(void);
  111.     void    KSDActive(void);
  112.     void    KSDOnceActive(void);
  113.     void    KSDBuffActive(void);
  114.     void    KSDWFMusi(void);
  115.     void    KSDWFFull(void);
  116.     int    KSDCheckFull(void);
  117.     int    KSDCheckEmpty(void);
  118.     int    KSDRcheck(void);
  119.     ULONG    KSDReadMode(void);
  120.     int    KSDReadVer(void);
  121.     long    KSDReadSize(void);
  122.     long    KSDReadFree(void);
  123.     int    KSDJLock(void);
  124.     int    KSDJUnlock(void);
  125.     int    KSDRead1(void);
  126.     int    KSDWrite1(UBYTE);
  127.     int    KSDB_KEYINP(void);
  128.     int    KSDB_KEYSNS(void);
  129.     int    KSDB_SFTSNS(void);
  130.     int    KSDExecEFunc(KSD_EF *);
  131.     void    KSDDevNameA(UBYTE *);    // V1.7
  132. #ifdef    __cplusplus
  133. }
  134. #endif
  135.  
  136. // #define定義関数
  137. #define    KSDClear()    KSDCallAPI(KSD_Clear)
  138. #define    KSDPause()    KSDCallAPI(KSD_Pause)
  139. #define    KSDStop()    KSDCallAPI(KSD_Stop)
  140. #define    KSDActive()    KSDCallAPI(KSD_Active)
  141. #define    KSDBuffActive()    KSDCallAPI(KSD_BuffActive)
  142. #define    KSDOnceActive()    KSDCallAPI(KSD_OnceActive)
  143. #define    KSDWFMusi()    KSDCallAPI(KSD_WFMusi)
  144. #define    KSDWFFull()    KSDCallAPI(KSD_WFFull)
  145. #define    KSDCheckFull()    KSDCallAPI(KSD_CheckFull)
  146. #define    KSDCheckEmpty()    KSDCallAPI(KSD_CheckEmpty)
  147. #define    KSDRcheck()    KSDCallAPI(KSD_Rcheck)
  148. #define    KSDReadMode()    KSDCallAPI(KSD_ReadMode)
  149. #define    KSDReadVer()    KSDCallAPI(KSD_ReadVer)
  150. #define    KSDReadSize()    KSDCallAPI(KSD_ReadSize)
  151. #define    KSDReadFree()    KSDCallAPI(KSD_ReadFree)
  152. #define    KSDJLock()    KSDCallAPI(KSD_JLock)
  153. #define    KSDJUnlock()    KSDCallAPI(KSD_JUnlock)
  154. #define    KSDB_KEYINP()    KSDCallAPI(KSD_B_KEYINP)
  155. #define    KSDB_KEYSNS()    KSDCallAPI(KSD_B_KEYSNS)
  156. #define    KSDB_SFTSNS()    KSDCallAPI(KSD_B_SFTSNS)
  157. //
  158. #define    KSDRead1()        KSDCallAPI(KSD_Read1)
  159. #define    KSDWrite1(dt)        KSDCallAPI1d(KSD_Write1,dt)
  160. #define    KSDLinkEFunc(ef)    KSDCallAPI1a(KSD_LinkEFunc,ef)
  161. #define    KSDUnlinkEFunc(ef)    KSDCallAPI1a(KSD_UnlinkEFunc,ef)
  162. #define    KSDExecEFunc(ef)    KSDCallAPI1a(KSD_ExecEFunc,ef)
  163. #define    KSDDevNameA(nm)        KSDCallAPI1a(KSD_DevNameA,nm)    // V1.7
  164. #define    KSDRead(buff,size)    KSDCallAPI2(KSD_Read,buff,size)
  165. #define    KSDWrite(buff,size)    KSDCallAPI2(KSD_Write,buff,size)
  166.  
  167. #endif
  168.